Caractéristiques du PMC : Structure en couches entièrement connectées :
Un MLP est composé de plusieurs couches de neurones entièrement connectées (Dense layers en Keras). Chaque neurone de la couche précédente est connecté à chaque neurone de la couche suivante. Fonctions d’activation :
Les fonctions d’activation (comme relu ou sigmoid) introduisent de la non-linéarité, permettant au modèle de capturer des relations complexes. Plusieurs couches cachées :
Un MLP a au moins une couche cachée entre la couche d’entrée et la couche de sortie.
# Chargement des bibliothèques utiles pour l'execution de ce notebook
library(ggplot2)
library(reticulate)
library(pROC)
Type 'citation("pROC")' for a citation.
Attachement du package : ‘pROC’
L'objet suivant est masqué depuis ‘package:imager’:
ci
Les objets suivants sont masqués depuis ‘package:stats’:
cov, smooth, var
library(caret)
suppressPackageStartupMessages(library(caret))
Sys.setenv(TF_CPP_MIN_LOG_LEVEL = "2")
library(keras)
library(reticulate)
use_condaenv("tf", conda = "C:/Users/beriv/anaconda3/condabin/conda.bat")
py_config()
python: C:/Users/beriv/anaconda3/envs/tf/python.exe
libpython: C:/Users/beriv/anaconda3/envs/tf/python310.dll
pythonhome: C:/Users/beriv/anaconda3/envs/tf
version: 3.10.13 | packaged by Anaconda, Inc. | (main, Sep 11 2023, 13:15:57) [MSC v.1916 64 bit (AMD64)]
Architecture: 64bit
numpy: C:/Users/beriv/anaconda3/envs/tf/Lib/site-packages/numpy
numpy_version: 1.26.3
tensorflow: C:\Users\beriv\ANACON~1\envs\tf\lib\site-packages\tensorflow\__init__.p
NOTE: Python version was forced by use_python() function
# Charger le dataset MNIST
data <- dataset_mnist()
x_train <- data$train$x
y_train <- data$train$y
x_test <- data$test$x
y_test <- data$test$y
# Prétraitement des données
x_train <- array_reshape(x_train, c(nrow(x_train), 28 * 28)) / 255
x_test <- array_reshape(x_test, c(nrow(x_test), 28 * 28)) / 255
y_train <- as.numeric(y_train)
y_test <- as.numeric(y_test)
# Séparer les données normales et anormales (par exemple, les 0 sont normaux)
normal_class <- 0
x_train_normal <- x_train[y_train == normal_class, ]
x_test_normal <- x_test[y_test == normal_class, ]
x_test_anomaly <- x_test[y_test != normal_class, ]
# Construire un modèle MLP pour encoder les données normales
model <- keras_model_sequential() %>%
layer_dense(units = 128, activation = 'relu', input_shape = c(28 * 28)) %>%
layer_dense(units = 64, activation = 'relu') %>%
layer_dense(units = 32, activation = 'relu', name = "latent") %>%
layer_dense(units = 64, activation = 'relu') %>%
layer_dense(units = 128, activation = 'relu') %>%
layer_dense(units = 28 * 28, activation = 'sigmoid')
model %>% compile(
optimizer = 'adam',
loss = 'mean_squared_error'
)
Chaque layer_dense représente une couche entièrement connectée. Non-linéarité :
Les fonctions d’activation relu et sigmoid ajoutent la non-linéarité nécessaire. Plusieurs couches cachées :
Le modèle contient plusieurs couches intermédiaires (couches cachées) : 128 → 64 → 32 → 64 → 128. Nombreuses unités (neurones) :
Chaque couche contient un nombre défini d’unités (neurones), comme 128 ou 64.
# Entraîner le modèle uniquement sur les données normales
history <- model %>% fit(
x_train_normal, x_train_normal,
epochs = 30,
batch_size = 256,
validation_split = 0.2
)
Epoch 1/30
1/19 [>.............................] - ETA: 26s - loss: 0.2277
5/19 [======>.......................] - ETA: 0s - loss: 0.2226
10/19 [==============>...............] - ETA: 0s - loss: 0.2016
17/19 [=========================>....] - ETA: 0s - loss: 0.1596
19/19 [==============================] - 2s 11ms/step - loss: 0.1527
19/19 [==============================] - 4s 134ms/step - loss: 0.1527 - val_loss: 0.0721
Epoch 2/30
1/19 [>.............................] - ETA: 0s - loss: 0.0736
6/19 [========>.....................] - ETA: 0s - loss: 0.0714
11/19 [================>.............] - ETA: 0s - loss: 0.0698
17/19 [=========================>....] - ETA: 0s - loss: 0.0688
19/19 [==============================] - 0s 13ms/step - loss: 0.0684
19/19 [==============================] - 0s 26ms/step - loss: 0.0684 - val_loss: 0.0631
Epoch 3/30
1/19 [>.............................] - ETA: 0s - loss: 0.0639
8/19 [===========>..................] - ETA: 0s - loss: 0.0626
15/19 [======================>.......] - ETA: 0s - loss: 0.0614
19/19 [==============================] - 0s 9ms/step - loss: 0.0606
19/19 [==============================] - 1s 32ms/step - loss: 0.0606 - val_loss: 0.0547
Epoch 4/30
1/19 [>.............................] - ETA: 0s - loss: 0.0567
7/19 [==========>...................] - ETA: 0s - loss: 0.0540
13/19 [===================>..........] - ETA: 0s - loss: 0.0527
19/19 [==============================] - 0s 9ms/step - loss: 0.0514
19/19 [==============================] - 1s 29ms/step - loss: 0.0514 - val_loss: 0.0458
Epoch 5/30
1/19 [>.............................] - ETA: 0s - loss: 0.0473
5/19 [======>.......................] - ETA: 0s - loss: 0.0463
10/19 [==============>...............] - ETA: 0s - loss: 0.0456
15/19 [======================>.......] - ETA: 0s - loss: 0.0449
19/19 [==============================] - 0s 13ms/step - loss: 0.0446
19/19 [==============================] - 1s 29ms/step - loss: 0.0446 - val_loss: 0.0418
Epoch 6/30
1/19 [>.............................] - ETA: 0s - loss: 0.0421
8/19 [===========>..................] - ETA: 0s - loss: 0.0420
14/19 [=====================>........] - ETA: 0s - loss: 0.0415
18/19 [===========================>..] - ETA: 0s - loss: 0.0411
19/19 [==============================] - 0s 9ms/step - loss: 0.0410
19/19 [==============================] - 1s 29ms/step - loss: 0.0410 - val_loss: 0.0381
Epoch 7/30
1/19 [>.............................] - ETA: 0s - loss: 0.0388
5/19 [======>.......................] - ETA: 0s - loss: 0.0390
11/19 [================>.............] - ETA: 0s - loss: 0.0380
16/19 [========================>.....] - ETA: 0s - loss: 0.0374
19/19 [==============================] - 0s 12ms/step - loss: 0.0371
19/19 [==============================] - 1s 30ms/step - loss: 0.0371 - val_loss: 0.0346
Epoch 8/30
1/19 [>.............................] - ETA: 0s - loss: 0.0354
8/19 [===========>..................] - ETA: 0s - loss: 0.0344
14/19 [=====================>........] - ETA: 0s - loss: 0.0340
19/19 [==============================] - 0s 9ms/step - loss: 0.0339
19/19 [==============================] - 1s 29ms/step - loss: 0.0339 - val_loss: 0.0323
Epoch 9/30
1/19 [>.............................] - ETA: 0s - loss: 0.0322
7/19 [==========>...................] - ETA: 0s - loss: 0.0323
13/19 [===================>..........] - ETA: 0s - loss: 0.0320
19/19 [==============================] - 0s 12ms/step - loss: 0.0317
19/19 [==============================] - 1s 30ms/step - loss: 0.0317 - val_loss: 0.0304
Epoch 10/30
1/19 [>.............................] - ETA: 0s - loss: 0.0298
5/19 [======>.......................] - ETA: 0s - loss: 0.0300
9/19 [=============>................] - ETA: 0s - loss: 0.0299
15/19 [======================>.......] - ETA: 0s - loss: 0.0298
19/19 [==============================] - 0s 13ms/step - loss: 0.0297
19/19 [==============================] - 1s 31ms/step - loss: 0.0297 - val_loss: 0.0287
Epoch 11/30
1/19 [>.............................] - ETA: 0s - loss: 0.0282
6/19 [========>.....................] - ETA: 0s - loss: 0.0285
10/19 [==============>...............] - ETA: 0s - loss: 0.0285
17/19 [=========================>....] - ETA: 0s - loss: 0.0280
19/19 [==============================] - 0s 13ms/step - loss: 0.0280
19/19 [==============================] - 1s 29ms/step - loss: 0.0280 - val_loss: 0.0270
Epoch 12/30
1/19 [>.............................] - ETA: 0s - loss: 0.0257
8/19 [===========>..................] - ETA: 0s - loss: 0.0268
15/19 [======================>.......] - ETA: 0s - loss: 0.0266
19/19 [==============================] - 0s 9ms/step - loss: 0.0266
19/19 [==============================] - 0s 27ms/step - loss: 0.0266 - val_loss: 0.0258
Epoch 13/30
1/19 [>.............................] - ETA: 0s - loss: 0.0259
7/19 [==========>...................] - ETA: 0s - loss: 0.0258
14/19 [=====================>........] - ETA: 0s - loss: 0.0253
19/19 [==============================] - 0s 11ms/step - loss: 0.0253
19/19 [==============================] - 0s 24ms/step - loss: 0.0253 - val_loss: 0.0245
Epoch 14/30
1/19 [>.............................] - ETA: 0s - loss: 0.0244
7/19 [==========>...................] - ETA: 0s - loss: 0.0244
12/19 [=================>............] - ETA: 0s - loss: 0.0242
19/19 [==============================] - 0s 9ms/step - loss: 0.0241
19/19 [==============================] - 0s 25ms/step - loss: 0.0241 - val_loss: 0.0234
Epoch 15/30
1/19 [>.............................] - ETA: 0s - loss: 0.0230
8/19 [===========>..................] - ETA: 0s - loss: 0.0233
15/19 [======================>.......] - ETA: 0s - loss: 0.0233
19/19 [==============================] - 0s 8ms/step - loss: 0.0231
19/19 [==============================] - 0s 25ms/step - loss: 0.0231 - val_loss: 0.0226
Epoch 16/30
1/19 [>.............................] - ETA: 0s - loss: 0.0226
7/19 [==========>...................] - ETA: 0s - loss: 0.0227
13/19 [===================>..........] - ETA: 0s - loss: 0.0224
19/19 [==============================] - 0s 9ms/step - loss: 0.0222
19/19 [==============================] - 0s 22ms/step - loss: 0.0222 - val_loss: 0.0218
Epoch 17/30
1/19 [>.............................] - ETA: 0s - loss: 0.0223
8/19 [===========>..................] - ETA: 0s - loss: 0.0215
15/19 [======================>.......] - ETA: 0s - loss: 0.0215
19/19 [==============================] - 0s 8ms/step - loss: 0.0214
19/19 [==============================] - 0s 24ms/step - loss: 0.0214 - val_loss: 0.0211
Epoch 18/30
1/19 [>.............................] - ETA: 0s - loss: 0.0207
8/19 [===========>..................] - ETA: 0s - loss: 0.0208
15/19 [======================>.......] - ETA: 0s - loss: 0.0207
19/19 [==============================] - 0s 8ms/step - loss: 0.0207
19/19 [==============================] - 0s 23ms/step - loss: 0.0207 - val_loss: 0.0208
Epoch 19/30
1/19 [>.............................] - ETA: 0s - loss: 0.0201
8/19 [===========>..................] - ETA: 0s - loss: 0.0203
15/19 [======================>.......] - ETA: 0s - loss: 0.0202
19/19 [==============================] - 0s 8ms/step - loss: 0.0202
19/19 [==============================] - 0s 25ms/step - loss: 0.0202 - val_loss: 0.0201
Epoch 20/30
1/19 [>.............................] - ETA: 0s - loss: 0.0199
6/19 [========>.....................] - ETA: 0s - loss: 0.0200
12/19 [=================>............] - ETA: 0s - loss: 0.0198
19/19 [==============================] - 0s 11ms/step - loss: 0.0197
19/19 [==============================] - 1s 29ms/step - loss: 0.0197 - val_loss: 0.0196
Epoch 21/30
1/19 [>.............................] - ETA: 0s - loss: 0.0184
8/19 [===========>..................] - ETA: 0s - loss: 0.0189
15/19 [======================>.......] - ETA: 0s - loss: 0.0192
19/19 [==============================] - 0s 8ms/step - loss: 0.0192
19/19 [==============================] - 0s 20ms/step - loss: 0.0192 - val_loss: 0.0195
Epoch 22/30
1/19 [>.............................] - ETA: 0s - loss: 0.0197
8/19 [===========>..................] - ETA: 0s - loss: 0.0187
15/19 [======================>.......] - ETA: 0s - loss: 0.0188
19/19 [==============================] - 0s 8ms/step - loss: 0.0188
19/19 [==============================] - 0s 24ms/step - loss: 0.0188 - val_loss: 0.0191
Epoch 23/30
1/19 [>.............................] - ETA: 0s - loss: 0.0188
8/19 [===========>..................] - ETA: 0s - loss: 0.0187
15/19 [======================>.......] - ETA: 0s - loss: 0.0186
19/19 [==============================] - 0s 9ms/step - loss: 0.0185
19/19 [==============================] - 0s 24ms/step - loss: 0.0185 - val_loss: 0.0186
Epoch 24/30
1/19 [>.............................] - ETA: 0s - loss: 0.0184
8/19 [===========>..................] - ETA: 0s - loss: 0.0181
15/19 [======================>.......] - ETA: 0s - loss: 0.0181
19/19 [==============================] - 0s 8ms/step - loss: 0.0181
19/19 [==============================] - 0s 23ms/step - loss: 0.0181 - val_loss: 0.0181
Epoch 25/30
1/19 [>.............................] - ETA: 0s - loss: 0.0179
8/19 [===========>..................] - ETA: 0s - loss: 0.0177
13/19 [===================>..........] - ETA: 0s - loss: 0.0176
19/19 [==============================] - 0s 9ms/step - loss: 0.0176
19/19 [==============================] - 1s 30ms/step - loss: 0.0176 - val_loss: 0.0177
Epoch 26/30
1/19 [>.............................] - ETA: 0s - loss: 0.0175
7/19 [==========>...................] - ETA: 0s - loss: 0.0172
13/19 [===================>..........] - ETA: 0s - loss: 0.0172
19/19 [==============================] - 0s 11ms/step - loss: 0.0172
19/19 [==============================] - 0s 22ms/step - loss: 0.0172 - val_loss: 0.0174
Epoch 27/30
1/19 [>.............................] - ETA: 0s - loss: 0.0166
9/19 [=============>................] - ETA: 0s - loss: 0.0169
15/19 [======================>.......] - ETA: 0s - loss: 0.0170
19/19 [==============================] - 0s 8ms/step - loss: 0.0170
19/19 [==============================] - 0s 23ms/step - loss: 0.0170 - val_loss: 0.0170
Epoch 28/30
1/19 [>.............................] - ETA: 0s - loss: 0.0171
8/19 [===========>..................] - ETA: 0s - loss: 0.0168
13/19 [===================>..........] - ETA: 0s - loss: 0.0168
19/19 [==============================] - 0s 8ms/step - loss: 0.0166
19/19 [==============================] - 0s 24ms/step - loss: 0.0166 - val_loss: 0.0168
Epoch 29/30
1/19 [>.............................] - ETA: 0s - loss: 0.0164
7/19 [==========>...................] - ETA: 0s - loss: 0.0165
14/19 [=====================>........] - ETA: 0s - loss: 0.0164
19/19 [==============================] - 0s 8ms/step - loss: 0.0164
19/19 [==============================] - 0s 25ms/step - loss: 0.0164 - val_loss: 0.0166
Epoch 30/30
1/19 [>.............................] - ETA: 0s - loss: 0.0161
6/19 [========>.....................] - ETA: 0s - loss: 0.0161
11/19 [================>.............] - ETA: 0s - loss: 0.0160
16/19 [========================>.....] - ETA: 0s - loss: 0.0160
19/19 [==============================] - 0s 12ms/step - loss: 0.0161
19/19 [==============================] - 0s 27ms/step - loss: 0.0161 - val_loss: 0.0162
# Calculer l'erreur de reconstruction pour les données normales et anormales
reconstruction_error <- function(model, data) {
reconstructed <- model %>% predict(data)
errors <- rowSums((data - reconstructed)^2)
return(errors)
}
normal_errors <- reconstruction_error(model, x_test_normal)
1/31 [..............................] - ETA: 4s
5/31 [===>..........................] - ETA: 0s
17/31 [===============>..............] - ETA: 0s
31/31 [==============================] - 0s 6ms/step
31/31 [==============================] - 0s 6ms/step
anomaly_errors <- reconstruction_error(model, x_test_anomaly)
1/282 [..............................] - ETA: 12s
20/282 [=>............................] - ETA: 0s
37/282 [==>...........................] - ETA: 0s
54/282 [====>.........................] - ETA: 0s
72/282 [======>.......................] - ETA: 0s
91/282 [========>.....................] - ETA: 0s
112/282 [==========>...................] - ETA: 0s
134/282 [=============>................] - ETA: 0s
157/282 [===============>..............] - ETA: 0s
177/282 [=================>............] - ETA: 0s
196/282 [===================>..........] - ETA: 0s
218/282 [======================>.......] - ETA: 0s
237/282 [========================>.....] - ETA: 0s
258/282 [==========================>...] - ETA: 0s
280/282 [============================>.] - ETA: 0s
282/282 [==============================] - 1s 3ms/step
282/282 [==============================] - 1s 3ms/step
# Définir un seuil pour détecter les anomalies
threshold <- quantile(normal_errors, 0.95)
# Identifier les anomalies
is_anomaly <- function(errors, threshold) {
return(errors > threshold)
}
normal_anomalies <- is_anomaly(normal_errors, threshold)
anomaly_detected <- is_anomaly(anomaly_errors, threshold)
# Résumé des résultats
cat("Seuil d'anomalie:", threshold, "\n")
Seuil d'anomalie: 24.32507
cat("Taux de détection d'anomalies parmi les données normales:", mean(normal_anomalies), "\n")
Taux de détection d'anomalies parmi les données normales: 0.05
cat("Taux de détection d'anomalies parmi les anomalies:", mean(anomaly_detected), "\n")
Taux de détection d'anomalies parmi les anomalies: 0.9900222
# Simuler des prédictions et des labels réels
set.seed(42)
actual <- c(rep(0, 50), rep(1, 50)) # Labels réels : 50 normaux, 50 anomalies
predicted <- c(rep(0, 45), rep(1, 5), rep(0, 10), rep(1, 40)) # Prédictions du modèle
# Afficher la matrice de confusion
conf_matrix <- confusionMatrix(as.factor(predicted), as.factor(actual))
print(conf_matrix)
Confusion Matrix and Statistics
Reference
Prediction 0 1
0 45 10
1 5 40
Accuracy : 0.85
95% CI : (0.7647, 0.9135)
No Information Rate : 0.5
P-Value [Acc > NIR] : 2.413e-13
Kappa : 0.7
Mcnemar's Test P-Value : 0.3017
Sensitivity : 0.9000
Specificity : 0.8000
Pos Pred Value : 0.8182
Neg Pred Value : 0.8889
Prevalence : 0.5000
Detection Rate : 0.4500
Detection Prevalence : 0.5500
Balanced Accuracy : 0.8500
'Positive' Class : 0
# Calculer et afficher le rapport de classification
precision <- conf_matrix$byClass["Precision"]
recall <- conf_matrix$byClass["Recall"]
f1_score <- 2 * (precision * recall) / (precision + recall)
cat("\nRapport de Classification :\n")
Rapport de Classification :
cat("Précision :", round(precision, 2), "\n")
Précision : 0.82
cat("Rappel :", round(recall, 2), "\n")
Rappel : 0.9
cat("F1-Score :", round(f1_score, 2), "\n")
F1-Score : 0.86
# Aplatir les images pour obtenir des vecteurs
x_train_flat <- array_reshape(x_train, c(nrow(x_train), 28 * 28)) / 255
x_test_flat <- array_reshape(x_test, c(nrow(x_test), 28 * 28)) / 255
# Calculer les moyennes et écarts-types sur l'ensemble d'entraînement
train_mean <- colMeans(x_train_flat, na.rm = TRUE)
train_sd <- apply(x_train_flat, 2, function(x) sd(x, na.rm = TRUE))
# Éviter la division par zéro en remplaçant les écarts-types nuls par une petite valeur
train_sd[train_sd < 0.01] <- 0.01
# Calcul des scores Z
z_scores <- abs(sweep(x_test_flat, 2, train_mean, "-") / train_sd)
# Définir un seuil basé sur les données normales
threshold <- quantile(rowMeans(z_scores), 0.95) # Seuil au 99e percentile
anomalies <- rowMeans(z_scores > threshold) > 0
cat("Nombre d'anomalies détectées :", sum(anomalies), "\n")
Nombre d'anomalies détectées : 10000
# Afficher le nombre d'anomalies détectées
cat("Nombre d'anomalies détectées :", sum(anomalies, na.rm = TRUE), "\n")
Nombre d'anomalies détectées : 10000
# Visualiser une anomalie
if (any(anomalies, na.rm = TRUE)) {
idx <- which(anomalies)[1] # Index de la première anomalie
image(matrix(x_test[idx, , ], 28, 28), col = gray.colors(256), main = "Anomalie détectée")
}
summary(train_mean)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.0000000 0.0004864 0.0283191 0.1306605 0.2701763 0.5472690
summary(train_sd)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.000001 0.017972 0.144604 0.193221 0.394989 0.446329
DISTANCE DE MAHALANOBIS
x_train <- mnist$train$x
x_test <- mnist$test$x
# Aplatir les images pour obtenir des vecteurs
x_train_flat <- array_reshape(x_train, c(nrow(x_train), 28 * 28)) / 255
x_test_flat <- array_reshape(x_test, c(nrow(x_test), 28 * 28)) / 255
# Vérifier et éliminer les colonnes avec faible variance
keep <- apply(x_train_flat, 2, var) > 1e-6
x_train_flat <- x_train_flat[, keep]
x_test_flat <- x_test_flat[, keep]
# Réduction de dimension avec PCA (facultatif, si les données sont encore trop corrélées)
library(stats)
pca_result <- prcomp(x_train_flat, center = TRUE, scale. = TRUE)
# Conserver les 100 premières composantes
num_components <- 100
x_train_pca <- pca_result$x[, 1:num_components]
x_test_pca <- predict(pca_result, newdata = x_test_flat)[, 1:num_components]
# Calculer la matrice de covariance et son inverse avec régularisation
epsilon <- 1e-6 # Petite valeur pour régulariser
cov_matrix <- cov(x_train_pca) + diag(epsilon, ncol(x_train_pca))
inv_cov_matrix <- solve(cov_matrix)
# Calculer la moyenne des données d'entraînement
mean_vector <- colMeans(x_train_pca)
# Fonction pour calculer la distance de Mahalanobis
mahalanobis_distance <- function(x, mean, inv_cov) {
diff <- x - mean
sqrt(rowSums((diff %*% inv_cov) * diff))
}
# Calculer les distances de Mahalanobis pour les données de test
distances <- mahalanobis_distance(x_test_pca, mean_vector, inv_cov_matrix)
# Définir un seuil basé sur le quantile des distances
threshold <- quantile(distances, 0.99) # Seuil au 99e percentile
# Identifier les anomalies
anomalies <- distances > threshold
cat("Nombre d'anomalies détectées :", sum(anomalies), "\n")
Nombre d'anomalies détectées : 100
# Visualiser une anomalie
if (any(anomalies)) {
idx <- which(anomalies)[1] # Index de la première anomalie
image(matrix(x_test[idx, , ], 28, 28), col = gray.colors(256), main = "Anomalie détectée")
}
str(x_train)
int [1:60000, 1:28, 1:28] 0 0 0 0 0 0 0 0 0 0 ...
# Chargement les bibliothèques nécessaires
library(imager)
# Étape 1 : Aplatir les images
x_test_flat <- apply(x_test, 1, function(image) {
as.vector(image) # Aplatir chaque matrice en vecteur
})
x_test_flat <- t(x_test_flat) # Transposer pour obtenir (N x 784)
cat("Dimensions de x_test_flat :", dim(x_test_flat), "\n")
Dimensions de x_test_flat : 10000 784
# Étape 2 : Générer les anomalies
apply_transformations <- function(image) {
image_matrix <- matrix(image, nrow = 28, ncol = 28)
transformed_image <- imrotate(as.cimg(image_matrix), angle = sample(c(-45, 45), 1)) # Rotation large
scaled_image <- imresize(transformed_image, scale = runif(1, 0.5, 2.0)) # Échelle variable
noisy_image <- scaled_image + rnorm(length(scaled_image), mean = 0, sd = 0.1) # Bruit
return(as.vector(as.numeric(noisy_image)))
}
# Appliquer une transformation (exemple : rotation et mise à l'échelle)
rotated_image <- imrotate(as.cimg(image_matrix), angle = sample(c(-30, 30), 1)) # Rotation
Erreur : objet 'image_matrix' introuvable
# Charger les bibliothèques nécessaires
library(keras)
library(caret)
# Étape 1 : Préparer les données
# Charger le dataset MNIST
data <- dataset_mnist()
x_train <- data$train$x
y_train <- data$train$y
x_test <- data$test$x
y_test <- data$test$y
# Aplatir les images en vecteurs 784 et normaliser
x_train_flat <- apply(x_train, 1, function(image) as.vector(image)) / 255
x_train_flat <- t(x_train_flat)
x_test_flat <- apply(x_test, 1, function(image) as.vector(image)) / 255
x_test_flat <- t(x_test_flat)
# Étape 2 : Générer les anomalies
apply_transformations <- function(image) {
# Reshape l'image aplatie en une matrice 28x28
image_matrix <- matrix(image, nrow = 28, ncol = 28)
# Appliquer une transformation (exemple : rotation et mise à l'échelle)
rotated_image <- imrotate(as.cimg(image_matrix), angle = sample(c(-30, 30), 1)) # Rotation
scaled_image <- imresize(rotated_image, scale = 1.2) # Mise à l'échelle
# Remettre au format 28x28 (padding ou recadrage si nécessaire)
scaled_image <- resize(scaled_image, size_x = 28, size_y = 28)
return(as.vector(as.numeric(scaled_image))) # Retourner le vecteur aplati
}
# Filtrer les données normales : toutes les images nettes, non transformées
x_train_normal <- x_train_flat
x_test_normal <- x_test_flat
# Créer des anomalies en appliquant des transformations sur x_test_flat
set.seed(42) # Fixer une graine pour la reproductibilité
x_test_anomaly <- t(apply(x_test_flat, 1, apply_transformations))
# Étape 3 : Définir et entraîner l'autoencodeur
model <- keras_model_sequential() %>%
layer_dense(units = 128, activation = 'relu', input_shape = c(28 * 28)) %>%
layer_dense(units = 64, activation = 'relu') %>%
layer_dense(units = 32, activation = 'relu', name = "latent") %>%
layer_dense(units = 64, activation = 'relu') %>%
layer_dense(units = 128, activation = 'relu') %>%
layer_dense(units = 28 * 28, activation = 'sigmoid')
model %>% compile(
optimizer = 'adam',
loss = 'mean_squared_error'
)
# Entraîner uniquement sur les données normales
history <- model %>% fit(
x_train_normal, x_train_normal,
epochs = 30,
batch_size = 256,
validation_split = 0.2
)
Epoch 1/30
1/188 [..............................] - ETA: 3:17 - loss: 0.2307
7/188 [>.............................] - ETA: 1s - loss: 0.2195
14/188 [=>............................] - ETA: 1s - loss: 0.1811
21/188 [==>...........................] - ETA: 1s - loss: 0.1485
28/188 [===>..........................] - ETA: 1s - loss: 0.1304
36/188 [====>.........................] - ETA: 1s - loss: 0.1178
43/188 [=====>........................] - ETA: 1s - loss: 0.1105
50/188 [======>.......................] - ETA: 1s - loss: 0.1051
57/188 [========>.....................] - ETA: 1s - loss: 0.1007
64/188 [=========>....................] - ETA: 0s - loss: 0.0972
73/188 [==========>...................] - ETA: 0s - loss: 0.0936
80/188 [===========>..................] - ETA: 0s - loss: 0.0912
87/188 [============>.................] - ETA: 0s - loss: 0.0890
94/188 [==============>...............] - ETA: 0s - loss: 0.0871
101/188 [===============>..............] - ETA: 0s - loss: 0.0853
108/188 [================>.............] - ETA: 0s - loss: 0.0837
115/188 [=================>............] - ETA: 0s - loss: 0.0823
123/188 [==================>...........] - ETA: 0s - loss: 0.0806
131/188 [===================>..........] - ETA: 0s - loss: 0.0791
138/188 [=====================>........] - ETA: 0s - loss: 0.0779
146/188 [======================>.......] - ETA: 0s - loss: 0.0765
153/188 [=======================>......] - ETA: 0s - loss: 0.0753
160/188 [========================>.....] - ETA: 0s - loss: 0.0741
167/188 [=========================>....] - ETA: 0s - loss: 0.0730
174/188 [==========================>...] - ETA: 0s - loss: 0.0720
182/188 [============================>.] - ETA: 0s - loss: 0.0708
188/188 [==============================] - 2s 8ms/step - loss: 0.0700
188/188 [==============================] - 3s 13ms/step - loss: 0.0700 - val_loss: 0.0439
Epoch 2/30
1/188 [..............................] - ETA: 2s - loss: 0.0437
7/188 [>.............................] - ETA: 1s - loss: 0.0443
11/188 [>.............................] - ETA: 2s - loss: 0.0440
16/188 [=>............................] - ETA: 2s - loss: 0.0436
21/188 [==>...........................] - ETA: 2s - loss: 0.0433
27/188 [===>..........................] - ETA: 1s - loss: 0.0429
33/188 [====>.........................] - ETA: 1s - loss: 0.0427
39/188 [=====>........................] - ETA: 1s - loss: 0.0424
44/188 [======>.......................] - ETA: 1s - loss: 0.0421
51/188 [=======>......................] - ETA: 1s - loss: 0.0418
57/188 [========>.....................] - ETA: 1s - loss: 0.0414
64/188 [=========>....................] - ETA: 1s - loss: 0.0411
72/188 [==========>...................] - ETA: 1s - loss: 0.0408
79/188 [===========>..................] - ETA: 1s - loss: 0.0404
88/188 [=============>................] - ETA: 0s - loss: 0.0400
95/188 [==============>...............] - ETA: 0s - loss: 0.0397
102/188 [===============>..............] - ETA: 0s - loss: 0.0395
109/188 [================>.............] - ETA: 0s - loss: 0.0392
117/188 [=================>............] - ETA: 0s - loss: 0.0388
125/188 [==================>...........] - ETA: 0s - loss: 0.0385
133/188 [====================>.........] - ETA: 0s - loss: 0.0382
140/188 [=====================>........] - ETA: 0s - loss: 0.0379
146/188 [======================>.......] - ETA: 0s - loss: 0.0377
153/188 [=======================>......] - ETA: 0s - loss: 0.0374
160/188 [========================>.....] - ETA: 0s - loss: 0.0371
167/188 [=========================>....] - ETA: 0s - loss: 0.0368
174/188 [==========================>...] - ETA: 0s - loss: 0.0366
181/188 [===========================>..] - ETA: 0s - loss: 0.0364
188/188 [==============================] - 2s 8ms/step - loss: 0.0361
188/188 [==============================] - 2s 10ms/step - loss: 0.0361 - val_loss: 0.0294
Epoch 3/30
1/188 [..............................] - ETA: 1s - loss: 0.0298
8/188 [>.............................] - ETA: 1s - loss: 0.0288
13/188 [=>............................] - ETA: 2s - loss: 0.0285
16/188 [=>............................] - ETA: 2s - loss: 0.0285
22/188 [==>...........................] - ETA: 1s - loss: 0.0285
27/188 [===>..........................] - ETA: 1s - loss: 0.0284
33/188 [====>.........................] - ETA: 1s - loss: 0.0284
38/188 [=====>........................] - ETA: 1s - loss: 0.0283
45/188 [======>.......................] - ETA: 1s - loss: 0.0282
52/188 [=======>......................] - ETA: 1s - loss: 0.0281
59/188 [========>.....................] - ETA: 1s - loss: 0.0279
66/188 [=========>....................] - ETA: 1s - loss: 0.0278
73/188 [==========>...................] - ETA: 1s - loss: 0.0276
80/188 [===========>..................] - ETA: 1s - loss: 0.0274
88/188 [=============>................] - ETA: 0s - loss: 0.0273
96/188 [==============>...............] - ETA: 0s - loss: 0.0272
101/188 [===============>..............] - ETA: 0s - loss: 0.0271
106/188 [===============>..............] - ETA: 0s - loss: 0.0270
112/188 [================>.............] - ETA: 0s - loss: 0.0269
118/188 [=================>............] - ETA: 0s - loss: 0.0268
125/188 [==================>...........] - ETA: 0s - loss: 0.0266
131/188 [===================>..........] - ETA: 0s - loss: 0.0265
137/188 [====================>.........] - ETA: 0s - loss: 0.0264
142/188 [=====================>........] - ETA: 0s - loss: 0.0263
147/188 [======================>.......] - ETA: 0s - loss: 0.0263
153/188 [=======================>......] - ETA: 0s - loss: 0.0262
159/188 [========================>.....] - ETA: 0s - loss: 0.0261
165/188 [=========================>....] - ETA: 0s - loss: 0.0260
171/188 [==========================>...] - ETA: 0s - loss: 0.0259
178/188 [===========================>..] - ETA: 0s - loss: 0.0258
185/188 [============================>.] - ETA: 0s - loss: 0.0258
188/188 [==============================] - 2s 9ms/step - loss: 0.0257
188/188 [==============================] - 2s 11ms/step - loss: 0.0257 - val_loss: 0.0234
Epoch 4/30
1/188 [..............................] - ETA: 1s - loss: 0.0235
7/188 [>.............................] - ETA: 1s - loss: 0.0234
14/188 [=>............................] - ETA: 1s - loss: 0.0231
19/188 [==>...........................] - ETA: 1s - loss: 0.0230
25/188 [==>...........................] - ETA: 1s - loss: 0.0229
29/188 [===>..........................] - ETA: 1s - loss: 0.0229
35/188 [====>.........................] - ETA: 1s - loss: 0.0228
40/188 [=====>........................] - ETA: 1s - loss: 0.0228
46/188 [======>.......................] - ETA: 1s - loss: 0.0228
53/188 [=======>......................] - ETA: 1s - loss: 0.0227
59/188 [========>.....................] - ETA: 1s - loss: 0.0227
66/188 [=========>....................] - ETA: 1s - loss: 0.0226
73/188 [==========>...................] - ETA: 1s - loss: 0.0226
79/188 [===========>..................] - ETA: 1s - loss: 0.0226
86/188 [============>.................] - ETA: 0s - loss: 0.0225
93/188 [=============>................] - ETA: 0s - loss: 0.0225
99/188 [==============>...............] - ETA: 0s - loss: 0.0225
105/188 [===============>..............] - ETA: 0s - loss: 0.0225
112/188 [================>.............] - ETA: 0s - loss: 0.0224
118/188 [=================>............] - ETA: 0s - loss: 0.0224
124/188 [==================>...........] - ETA: 0s - loss: 0.0223
129/188 [===================>..........] - ETA: 0s - loss: 0.0223
134/188 [====================>.........] - ETA: 0s - loss: 0.0223
140/188 [=====================>........] - ETA: 0s - loss: 0.0222
145/188 [======================>.......] - ETA: 0s - loss: 0.0222
150/188 [======================>.......] - ETA: 0s - loss: 0.0221
154/188 [=======================>......] - ETA: 0s - loss: 0.0221
160/188 [========================>.....] - ETA: 0s - loss: 0.0220
167/188 [=========================>....] - ETA: 0s - loss: 0.0220
173/188 [==========================>...] - ETA: 0s - loss: 0.0220
178/188 [===========================>..] - ETA: 0s - loss: 0.0220
184/188 [============================>.] - ETA: 0s - loss: 0.0219
188/188 [==============================] - 2s 10ms/step - loss: 0.0219
188/188 [==============================] - 2s 12ms/step - loss: 0.0219 - val_loss: 0.0210
Epoch 5/30
1/188 [..............................] - ETA: 2s - loss: 0.0204
6/188 [..............................] - ETA: 2s - loss: 0.0208
10/188 [>.............................] - ETA: 2s - loss: 0.0208
15/188 [=>............................] - ETA: 2s - loss: 0.0206
21/188 [==>...........................] - ETA: 1s - loss: 0.0206
27/188 [===>..........................] - ETA: 1s - loss: 0.0205
32/188 [====>.........................] - ETA: 1s - loss: 0.0204
38/188 [=====>........................] - ETA: 1s - loss: 0.0204
44/188 [======>.......................] - ETA: 1s - loss: 0.0204
49/188 [======>.......................] - ETA: 1s - loss: 0.0204
56/188 [=======>......................] - ETA: 1s - loss: 0.0204
63/188 [=========>....................] - ETA: 1s - loss: 0.0203
69/188 [==========>...................] - ETA: 1s - loss: 0.0203
75/188 [==========>...................] - ETA: 1s - loss: 0.0202
80/188 [===========>..................] - ETA: 1s - loss: 0.0202
86/188 [============>.................] - ETA: 0s - loss: 0.0202
92/188 [=============>................] - ETA: 1s - loss: 0.0202
98/188 [==============>...............] - ETA: 0s - loss: 0.0201
99/188 [==============>...............] - ETA: 1s - loss: 0.0201
104/188 [===============>..............] - ETA: 0s - loss: 0.0201
108/188 [================>.............] - ETA: 0s - loss: 0.0201
112/188 [================>.............] - ETA: 0s - loss: 0.0201
117/188 [=================>............] - ETA: 0s - loss: 0.0201
123/188 [==================>...........] - ETA: 0s - loss: 0.0200
130/188 [===================>..........] - ETA: 0s - loss: 0.0200
136/188 [====================>.........] - ETA: 0s - loss: 0.0200
142/188 [=====================>........] - ETA: 0s - loss: 0.0200
148/188 [======================>.......] - ETA: 0s - loss: 0.0199
154/188 [=======================>......] - ETA: 0s - loss: 0.0199
160/188 [========================>.....] - ETA: 0s - loss: 0.0199
167/188 [=========================>....] - ETA: 0s - loss: 0.0199
174/188 [==========================>...] - ETA: 0s - loss: 0.0199
180/188 [===========================>..] - ETA: 0s - loss: 0.0199
185/188 [============================>.] - ETA: 0s - loss: 0.0199
188/188 [==============================] - 2s 11ms/step - loss: 0.0198
188/188 [==============================] - 2s 13ms/step - loss: 0.0198 - val_loss: 0.0193
Epoch 6/30
1/188 [..............................] - ETA: 1s - loss: 0.0186
8/188 [>.............................] - ETA: 1s - loss: 0.0191
15/188 [=>............................] - ETA: 1s - loss: 0.0188
21/188 [==>...........................] - ETA: 1s - loss: 0.0187
28/188 [===>..........................] - ETA: 1s - loss: 0.0188
35/188 [====>.........................] - ETA: 1s - loss: 0.0188
41/188 [=====>........................] - ETA: 1s - loss: 0.0188
48/188 [======>.......................] - ETA: 1s - loss: 0.0188
55/188 [=======>......................] - ETA: 1s - loss: 0.0188
62/188 [========>.....................] - ETA: 1s - loss: 0.0188
67/188 [=========>....................] - ETA: 1s - loss: 0.0188
72/188 [==========>...................] - ETA: 1s - loss: 0.0188
77/188 [===========>..................] - ETA: 0s - loss: 0.0188
83/188 [============>.................] - ETA: 0s - loss: 0.0187
88/188 [=============>................] - ETA: 0s - loss: 0.0187
93/188 [=============>................] - ETA: 0s - loss: 0.0187
99/188 [==============>...............] - ETA: 0s - loss: 0.0187
106/188 [===============>..............] - ETA: 0s - loss: 0.0187
112/188 [================>.............] - ETA: 0s - loss: 0.0186
118/188 [=================>............] - ETA: 0s - loss: 0.0186
124/188 [==================>...........] - ETA: 0s - loss: 0.0185
129/188 [===================>..........] - ETA: 0s - loss: 0.0185
136/188 [====================>.........] - ETA: 0s - loss: 0.0185
142/188 [=====================>........] - ETA: 0s - loss: 0.0184
148/188 [======================>.......] - ETA: 0s - loss: 0.0184
154/188 [=======================>......] - ETA: 0s - loss: 0.0184
161/188 [========================>.....] - ETA: 0s - loss: 0.0183
167/188 [=========================>....] - ETA: 0s - loss: 0.0183
172/188 [==========================>...] - ETA: 0s - loss: 0.0183
177/188 [===========================>..] - ETA: 0s - loss: 0.0183
183/188 [============================>.] - ETA: 0s - loss: 0.0183
188/188 [==============================] - 2s 9ms/step - loss: 0.0182
188/188 [==============================] - 2s 11ms/step - loss: 0.0182 - val_loss: 0.0177
Epoch 7/30
1/188 [..............................] - ETA: 1s - loss: 0.0169
8/188 [>.............................] - ETA: 1s - loss: 0.0175
15/188 [=>............................] - ETA: 1s - loss: 0.0174
22/188 [==>...........................] - ETA: 1s - loss: 0.0173
28/188 [===>..........................] - ETA: 1s - loss: 0.0173
35/188 [====>.........................] - ETA: 1s - loss: 0.0174
42/188 [=====>........................] - ETA: 1s - loss: 0.0174
49/188 [======>.......................] - ETA: 1s - loss: 0.0174
50/188 [======>.......................] - ETA: 1s - loss: 0.0173
54/188 [=======>......................] - ETA: 1s - loss: 0.0174
59/188 [========>.....................] - ETA: 1s - loss: 0.0174
64/188 [=========>....................] - ETA: 1s - loss: 0.0174
71/188 [==========>...................] - ETA: 1s - loss: 0.0174
78/188 [===========>..................] - ETA: 1s - loss: 0.0173
85/188 [============>.................] - ETA: 0s - loss: 0.0173
92/188 [=============>................] - ETA: 0s - loss: 0.0173
100/188 [==============>...............] - ETA: 0s - loss: 0.0173
107/188 [================>.............] - ETA: 0s - loss: 0.0173
113/188 [=================>............] - ETA: 0s - loss: 0.0173
120/188 [==================>...........] - ETA: 0s - loss: 0.0173
127/188 [===================>..........] - ETA: 0s - loss: 0.0172
134/188 [====================>.........] - ETA: 0s - loss: 0.0172
140/188 [=====================>........] - ETA: 0s - loss: 0.0172
148/188 [======================>.......] - ETA: 0s - loss: 0.0172
155/188 [=======================>......] - ETA: 0s - loss: 0.0172
163/188 [=========================>....] - ETA: 0s - loss: 0.0171
171/188 [==========================>...] - ETA: 0s - loss: 0.0171
177/188 [===========================>..] - ETA: 0s - loss: 0.0171
183/188 [============================>.] - ETA: 0s - loss: 0.0171
188/188 [==============================] - 2s 8ms/step - loss: 0.0170
188/188 [==============================] - 2s 10ms/step - loss: 0.0170 - val_loss: 0.0167
Epoch 8/30
1/188 [..............................] - ETA: 1s - loss: 0.0166
8/188 [>.............................] - ETA: 1s - loss: 0.0165
15/188 [=>............................] - ETA: 1s - loss: 0.0165
21/188 [==>...........................] - ETA: 1s - loss: 0.0165
28/188 [===>..........................] - ETA: 1s - loss: 0.0165
35/188 [====>.........................] - ETA: 1s - loss: 0.0164
37/188 [====>.........................] - ETA: 1s - loss: 0.0164
42/188 [=====>........................] - ETA: 1s - loss: 0.0164
49/188 [======>.......................] - ETA: 1s - loss: 0.0164
56/188 [=======>......................] - ETA: 1s - loss: 0.0164
61/188 [========>.....................] - ETA: 1s - loss: 0.0163
67/188 [=========>....................] - ETA: 1s - loss: 0.0164
74/188 [==========>...................] - ETA: 1s - loss: 0.0164
81/188 [===========>..................] - ETA: 0s - loss: 0.0164
88/188 [=============>................] - ETA: 0s - loss: 0.0164
95/188 [==============>...............] - ETA: 0s - loss: 0.0163
102/188 [===============>..............] - ETA: 0s - loss: 0.0163
109/188 [================>.............] - ETA: 0s - loss: 0.0163
116/188 [=================>............] - ETA: 0s - loss: 0.0163
124/188 [==================>...........] - ETA: 0s - loss: 0.0162
131/188 [===================>..........] - ETA: 0s - loss: 0.0162
138/188 [=====================>........] - ETA: 0s - loss: 0.0162
145/188 [======================>.......] - ETA: 0s - loss: 0.0162
153/188 [=======================>......] - ETA: 0s - loss: 0.0162
160/188 [========================>.....] - ETA: 0s - loss: 0.0161
167/188 [=========================>....] - ETA: 0s - loss: 0.0161
173/188 [==========================>...] - ETA: 0s - loss: 0.0161
181/188 [===========================>..] - ETA: 0s - loss: 0.0161
187/188 [============================>.] - ETA: 0s - loss: 0.0161
188/188 [==============================] - 2s 8ms/step - loss: 0.0161
188/188 [==============================] - 2s 10ms/step - loss: 0.0161 - val_loss: 0.0158
Epoch 9/30
1/188 [..............................] - ETA: 1s - loss: 0.0153
8/188 [>.............................] - ETA: 1s - loss: 0.0155
15/188 [=>............................] - ETA: 1s - loss: 0.0157
22/188 [==>...........................] - ETA: 1s - loss: 0.0156
26/188 [===>..........................] - ETA: 1s - loss: 0.0156
31/188 [===>..........................] - ETA: 1s - loss: 0.0156
37/188 [====>.........................] - ETA: 1s - loss: 0.0156
44/188 [======>.......................] - ETA: 1s - loss: 0.0155
50/188 [======>.......................] - ETA: 1s - loss: 0.0155
57/188 [========>.....................] - ETA: 1s - loss: 0.0155
64/188 [=========>....................] - ETA: 1s - loss: 0.0155
70/188 [==========>...................] - ETA: 1s - loss: 0.0155
76/188 [===========>..................] - ETA: 1s - loss: 0.0155
83/188 [============>.................] - ETA: 0s - loss: 0.0155
90/188 [=============>................] - ETA: 0s - loss: 0.0155
97/188 [==============>...............] - ETA: 0s - loss: 0.0155
104/188 [===============>..............] - ETA: 0s - loss: 0.0154
110/188 [================>.............] - ETA: 0s - loss: 0.0154
117/188 [=================>............] - ETA: 0s - loss: 0.0154
124/188 [==================>...........] - ETA: 0s - loss: 0.0154
131/188 [===================>..........] - ETA: 0s - loss: 0.0154
138/188 [=====================>........] - ETA: 0s - loss: 0.0154
146/188 [======================>.......] - ETA: 0s - loss: 0.0154
153/188 [=======================>......] - ETA: 0s - loss: 0.0154
160/188 [========================>.....] - ETA: 0s - loss: 0.0154
167/188 [=========================>....] - ETA: 0s - loss: 0.0153
174/188 [==========================>...] - ETA: 0s - loss: 0.0153
181/188 [===========================>..] - ETA: 0s - loss: 0.0153
188/188 [==============================] - 2s 8ms/step - loss: 0.0153
188/188 [==============================] - 2s 10ms/step - loss: 0.0153 - val_loss: 0.0151
Epoch 10/30
1/188 [..............................] - ETA: 1s - loss: 0.0150
7/188 [>.............................] - ETA: 1s - loss: 0.0148
10/188 [>.............................] - ETA: 2s - loss: 0.0149
16/188 [=>............................] - ETA: 1s - loss: 0.0149
21/188 [==>...........................] - ETA: 1s - loss: 0.0149
27/188 [===>..........................] - ETA: 1s - loss: 0.0149
34/188 [====>.........................] - ETA: 1s - loss: 0.0149
40/188 [=====>........................] - ETA: 1s - loss: 0.0149
46/188 [======>.......................] - ETA: 1s - loss: 0.0148
53/188 [=======>......................] - ETA: 1s - loss: 0.0148
61/188 [========>.....................] - ETA: 1s - loss: 0.0148
68/188 [=========>....................] - ETA: 1s - loss: 0.0147
76/188 [===========>..................] - ETA: 1s - loss: 0.0147
83/188 [============>.................] - ETA: 0s - loss: 0.0147
90/188 [=============>................] - ETA: 0s - loss: 0.0147
96/188 [==============>...............] - ETA: 0s - loss: 0.0147
103/188 [===============>..............] - ETA: 0s - loss: 0.0147
111/188 [================>.............] - ETA: 0s - loss: 0.0147
118/188 [=================>............] - ETA: 0s - loss: 0.0147
124/188 [==================>...........] - ETA: 0s - loss: 0.0147
130/188 [===================>..........] - ETA: 0s - loss: 0.0147
137/188 [====================>.........] - ETA: 0s - loss: 0.0147
144/188 [=====================>........] - ETA: 0s - loss: 0.0147
151/188 [=======================>......] - ETA: 0s - loss: 0.0147
158/188 [========================>.....] - ETA: 0s - loss: 0.0147
166/188 [=========================>....] - ETA: 0s - loss: 0.0146
174/188 [==========================>...] - ETA: 0s - loss: 0.0146
182/188 [============================>.] - ETA: 0s - loss: 0.0146
188/188 [==============================] - 2s 8ms/step - loss: 0.0146
188/188 [==============================] - 2s 10ms/step - loss: 0.0146 - val_loss: 0.0145
Epoch 11/30
1/188 [..............................] - ETA: 1s - loss: 0.0143
8/188 [>.............................] - ETA: 1s - loss: 0.0142
14/188 [=>............................] - ETA: 1s - loss: 0.0142
17/188 [=>............................] - ETA: 1s - loss: 0.0143
22/188 [==>...........................] - ETA: 1s - loss: 0.0143
26/188 [===>..........................] - ETA: 1s - loss: 0.0142
32/188 [====>.........................] - ETA: 1s - loss: 0.0143
38/188 [=====>........................] - ETA: 1s - loss: 0.0143
43/188 [=====>........................] - ETA: 1s - loss: 0.0143
48/188 [======>.......................] - ETA: 1s - loss: 0.0143
54/188 [=======>......................] - ETA: 1s - loss: 0.0143
60/188 [========>.....................] - ETA: 1s - loss: 0.0143
67/188 [=========>....................] - ETA: 1s - loss: 0.0143
73/188 [==========>...................] - ETA: 1s - loss: 0.0143
79/188 [===========>..................] - ETA: 1s - loss: 0.0142
83/188 [============>.................] - ETA: 1s - loss: 0.0142
88/188 [=============>................] - ETA: 1s - loss: 0.0142
94/188 [==============>...............] - ETA: 0s - loss: 0.0142
100/188 [==============>...............] - ETA: 0s - loss: 0.0142
106/188 [===============>..............] - ETA: 0s - loss: 0.0142
112/188 [================>.............] - ETA: 0s - loss: 0.0142
118/188 [=================>............] - ETA: 0s - loss: 0.0142
124/188 [==================>...........] - ETA: 0s - loss: 0.0142
130/188 [===================>..........] - ETA: 0s - loss: 0.0141
136/188 [====================>.........] - ETA: 0s - loss: 0.0141
142/188 [=====================>........] - ETA: 0s - loss: 0.0141
148/188 [======================>.......] - ETA: 0s - loss: 0.0141
154/188 [=======================>......] - ETA: 0s - loss: 0.0141
160/188 [========================>.....] - ETA: 0s - loss: 0.0141
167/188 [=========================>....] - ETA: 0s - loss: 0.0140
173/188 [==========================>...] - ETA: 0s - loss: 0.0140
180/188 [===========================>..] - ETA: 0s - loss: 0.0140
186/188 [============================>.] - ETA: 0s - loss: 0.0140
187/188 [============================>.] - ETA: 0s - loss: 0.0140
188/188 [==============================] - 2s 10ms/step - loss: 0.0140
188/188 [==============================] - 2s 12ms/step - loss: 0.0140 - val_loss: 0.0139
Epoch 12/30
1/188 [..............................] - ETA: 1s - loss: 0.0136
8/188 [>.............................] - ETA: 1s - loss: 0.0137
15/188 [=>............................] - ETA: 1s - loss: 0.0136
21/188 [==>...........................] - ETA: 1s - loss: 0.0136
27/188 [===>..........................] - ETA: 1s - loss: 0.0136
33/188 [====>.........................] - ETA: 1s - loss: 0.0136
40/188 [=====>........................] - ETA: 1s - loss: 0.0136
47/188 [======>.......................] - ETA: 1s - loss: 0.0135
53/188 [=======>......................] - ETA: 1s - loss: 0.0136
59/188 [========>.....................] - ETA: 1s - loss: 0.0136
66/188 [=========>....................] - ETA: 1s - loss: 0.0136
71/188 [==========>...................] - ETA: 1s - loss: 0.0136
76/188 [===========>..................] - ETA: 0s - loss: 0.0136
82/188 [============>.................] - ETA: 0s - loss: 0.0136
89/188 [=============>................] - ETA: 0s - loss: 0.0135
95/188 [==============>...............] - ETA: 0s - loss: 0.0135
101/188 [===============>..............] - ETA: 0s - loss: 0.0135
107/188 [================>.............] - ETA: 0s - loss: 0.0135
113/188 [=================>............] - ETA: 0s - loss: 0.0135
119/188 [=================>............] - ETA: 0s - loss: 0.0135
126/188 [===================>..........] - ETA: 0s - loss: 0.0135
132/188 [====================>.........] - ETA: 0s - loss: 0.0135
138/188 [=====================>........] - ETA: 0s - loss: 0.0135
144/188 [=====================>........] - ETA: 0s - loss: 0.0135
151/188 [=======================>......] - ETA: 0s - loss: 0.0135
158/188 [========================>.....] - ETA: 0s - loss: 0.0135
164/188 [=========================>....] - ETA: 0s - loss: 0.0135
165/188 [=========================>....] - ETA: 0s - loss: 0.0135
170/188 [==========================>...] - ETA: 0s - loss: 0.0135
175/188 [==========================>...] - ETA: 0s - loss: 0.0134
181/188 [===========================>..] - ETA: 0s - loss: 0.0134
187/188 [============================>.] - ETA: 0s - loss: 0.0134
188/188 [==============================] - 2s 9ms/step - loss: 0.0134
188/188 [==============================] - 2s 11ms/step - loss: 0.0134 - val_loss: 0.0135
Epoch 13/30
1/188 [..............................] - ETA: 0s - loss: 0.0132
6/188 [..............................] - ETA: 1s - loss: 0.0135
13/188 [=>............................] - ETA: 1s - loss: 0.0134
19/188 [==>...........................] - ETA: 1s - loss: 0.0133
25/188 [==>...........................] - ETA: 1s - loss: 0.0132
29/188 [===>..........................] - ETA: 1s - loss: 0.0132
35/188 [====>.........................] - ETA: 1s - loss: 0.0132
42/188 [=====>........................] - ETA: 1s - loss: 0.0132
48/188 [======>.......................] - ETA: 1s - loss: 0.0132
53/188 [=======>......................] - ETA: 1s - loss: 0.0132
58/188 [========>.....................] - ETA: 1s - loss: 0.0132
64/188 [=========>....................] - ETA: 1s - loss: 0.0131
70/188 [==========>...................] - ETA: 1s - loss: 0.0131
76/188 [===========>..................] - ETA: 1s - loss: 0.0131
82/188 [============>.................] - ETA: 1s - loss: 0.0131
88/188 [=============>................] - ETA: 0s - loss: 0.0131
94/188 [==============>...............] - ETA: 0s - loss: 0.0131
100/188 [==============>...............] - ETA: 0s - loss: 0.0131
106/188 [===============>..............] - ETA: 0s - loss: 0.0131
112/188 [================>.............] - ETA: 0s - loss: 0.0131
118/188 [=================>............] - ETA: 0s - loss: 0.0131
124/188 [==================>...........] - ETA: 0s - loss: 0.0131
127/188 [===================>..........] - ETA: 0s - loss: 0.0131
132/188 [====================>.........] - ETA: 0s - loss: 0.0131
137/188 [====================>.........] - ETA: 0s - loss: 0.0130
143/188 [=====================>........] - ETA: 0s - loss: 0.0130
150/188 [======================>.......] - ETA: 0s - loss: 0.0130
155/188 [=======================>......] - ETA: 0s - loss: 0.0130
160/188 [========================>.....] - ETA: 0s - loss: 0.0130
166/188 [=========================>....] - ETA: 0s - loss: 0.0130
173/188 [==========================>...] - ETA: 0s - loss: 0.0130
179/188 [===========================>..] - ETA: 0s - loss: 0.0130
186/188 [============================>.] - ETA: 0s - loss: 0.0130
188/188 [==============================] - 2s 10ms/step - loss: 0.0130
188/188 [==============================] - 2s 11ms/step - loss: 0.0130 - val_loss: 0.0131
Epoch 14/30
1/188 [..............................] - ETA: 0s - loss: 0.0130
7/188 [>.............................] - ETA: 1s - loss: 0.0125
15/188 [=>............................] - ETA: 1s - loss: 0.0128
21/188 [==>...........................] - ETA: 1s - loss: 0.0128
27/188 [===>..........................] - ETA: 1s - loss: 0.0129
33/188 [====>.........................] - ETA: 1s - loss: 0.0128
38/188 [=====>........................] - ETA: 1s - loss: 0.0128
43/188 [=====>........................] - ETA: 1s - loss: 0.0128
48/188 [======>.......................] - ETA: 1s - loss: 0.0128
54/188 [=======>......................] - ETA: 1s - loss: 0.0128
60/188 [========>.....................] - ETA: 1s - loss: 0.0128
66/188 [=========>....................] - ETA: 1s - loss: 0.0128
72/188 [==========>...................] - ETA: 1s - loss: 0.0128
78/188 [===========>..................] - ETA: 1s - loss: 0.0128
83/188 [============>.................] - ETA: 0s - loss: 0.0128
89/188 [=============>................] - ETA: 0s - loss: 0.0128
91/188 [=============>................] - ETA: 0s - loss: 0.0128
96/188 [==============>...............] - ETA: 0s - loss: 0.0127
102/188 [===============>..............] - ETA: 0s - loss: 0.0127
108/188 [================>.............] - ETA: 0s - loss: 0.0127
115/188 [=================>............] - ETA: 0s - loss: 0.0127
121/188 [==================>...........] - ETA: 0s - loss: 0.0127
126/188 [===================>..........] - ETA: 0s - loss: 0.0127
133/188 [====================>.........] - ETA: 0s - loss: 0.0127
138/188 [=====================>........] - ETA: 0s - loss: 0.0127
142/188 [=====================>........] - ETA: 0s - loss: 0.0127
147/188 [======================>.......] - ETA: 0s - loss: 0.0127
153/188 [=======================>......] - ETA: 0s - loss: 0.0127
159/188 [========================>.....] - ETA: 0s - loss: 0.0127
165/188 [=========================>....] - ETA: 0s - loss: 0.0127
171/188 [==========================>...] - ETA: 0s - loss: 0.0127
177/188 [===========================>..] - ETA: 0s - loss: 0.0126
183/188 [============================>.] - ETA: 0s - loss: 0.0126
188/188 [==============================] - 2s 10ms/step - loss: 0.0126
188/188 [==============================] - 2s 11ms/step - loss: 0.0126 - val_loss: 0.0126
Epoch 15/30
1/188 [..............................] - ETA: 0s - loss: 0.0120
7/188 [>.............................] - ETA: 1s - loss: 0.0124
15/188 [=>............................] - ETA: 1s - loss: 0.0124
21/188 [==>...........................] - ETA: 1s - loss: 0.0124
27/188 [===>..........................] - ETA: 1s - loss: 0.0123
33/188 [====>.........................] - ETA: 1s - loss: 0.0123
40/188 [=====>........................] - ETA: 1s - loss: 0.0124
46/188 [======>.......................] - ETA: 1s - loss: 0.0124
53/188 [=======>......................] - ETA: 1s - loss: 0.0124
55/188 [=======>......................] - ETA: 1s - loss: 0.0124
60/188 [========>.....................] - ETA: 1s - loss: 0.0123
65/188 [=========>....................] - ETA: 1s - loss: 0.0123
71/188 [==========>...................] - ETA: 1s - loss: 0.0123
78/188 [===========>..................] - ETA: 1s - loss: 0.0123
85/188 [============>.................] - ETA: 0s - loss: 0.0123
92/188 [=============>................] - ETA: 0s - loss: 0.0123
99/188 [==============>...............] - ETA: 0s - loss: 0.0123
106/188 [===============>..............] - ETA: 0s - loss: 0.0123
113/188 [=================>............] - ETA: 0s - loss: 0.0123
120/188 [==================>...........] - ETA: 0s - loss: 0.0123
127/188 [===================>..........] - ETA: 0s - loss: 0.0123
134/188 [====================>.........] - ETA: 0s - loss: 0.0123
141/188 [=====================>........] - ETA: 0s - loss: 0.0123
147/188 [======================>.......] - ETA: 0s - loss: 0.0123
153/188 [=======================>......] - ETA: 0s - loss: 0.0123
160/188 [========================>.....] - ETA: 0s - loss: 0.0123
167/188 [=========================>....] - ETA: 0s - loss: 0.0123
174/188 [==========================>...] - ETA: 0s - loss: 0.0123
181/188 [===========================>..] - ETA: 0s - loss: 0.0123
188/188 [==============================] - 2s 8ms/step - loss: 0.0123
188/188 [==============================] - 2s 10ms/step - loss: 0.0123 - val_loss: 0.0123
Epoch 16/30
1/188 [..............................] - ETA: 1s - loss: 0.0116
8/188 [>.............................] - ETA: 1s - loss: 0.0121
15/188 [=>............................] - ETA: 1s - loss: 0.0122
22/188 [==>...........................] - ETA: 1s - loss: 0.0122
29/188 [===>..........................] - ETA: 1s - loss: 0.0122
35/188 [====>.........................] - ETA: 1s - loss: 0.0121
38/188 [=====>........................] - ETA: 1s - loss: 0.0121
43/188 [=====>........................] - ETA: 1s - loss: 0.0121
50/188 [======>.......................] - ETA: 1s - loss: 0.0121
57/188 [========>.....................] - ETA: 1s - loss: 0.0120
63/188 [=========>....................] - ETA: 1s - loss: 0.0120
70/188 [==========>...................] - ETA: 1s - loss: 0.0120
78/188 [===========>..................] - ETA: 0s - loss: 0.0120
84/188 [============>.................] - ETA: 0s - loss: 0.0120
91/188 [=============>................] - ETA: 0s - loss: 0.0120
98/188 [==============>...............] - ETA: 0s - loss: 0.0120
105/188 [===============>..............] - ETA: 0s - loss: 0.0120
113/188 [=================>............] - ETA: 0s - loss: 0.0120
121/188 [==================>...........] - ETA: 0s - loss: 0.0120
128/188 [===================>..........] - ETA: 0s - loss: 0.0120
135/188 [====================>.........] - ETA: 0s - loss: 0.0120
142/188 [=====================>........] - ETA: 0s - loss: 0.0120
150/188 [======================>.......] - ETA: 0s - loss: 0.0120
156/188 [=======================>......] - ETA: 0s - loss: 0.0120
162/188 [========================>.....] - ETA: 0s - loss: 0.0120
169/188 [=========================>....] - ETA: 0s - loss: 0.0120
176/188 [===========================>..] - ETA: 0s - loss: 0.0120
183/188 [============================>.] - ETA: 0s - loss: 0.0120
188/188 [==============================] - 2s 8ms/step - loss: 0.0120
188/188 [==============================] - 2s 10ms/step - loss: 0.0120 - val_loss: 0.0121
Epoch 17/30
1/188 [..............................] - ETA: 1s - loss: 0.0117
8/188 [>.............................] - ETA: 1s - loss: 0.0119
11/188 [>.............................] - ETA: 2s - loss: 0.0119
19/188 [==>...........................] - ETA: 1s - loss: 0.0119
26/188 [===>..........................] - ETA: 1s - loss: 0.0118
32/188 [====>.........................] - ETA: 1s - loss: 0.0118
37/188 [====>.........................] - ETA: 1s - loss: 0.0118
42/188 [=====>........................] - ETA: 1s - loss: 0.0118
49/188 [======>.......................] - ETA: 1s - loss: 0.0117
56/188 [=======>......................] - ETA: 1s - loss: 0.0117
63/188 [=========>....................] - ETA: 1s - loss: 0.0117
70/188 [==========>...................] - ETA: 1s - loss: 0.0117
77/188 [===========>..................] - ETA: 1s - loss: 0.0117
84/188 [============>.................] - ETA: 0s - loss: 0.0117
90/188 [=============>................] - ETA: 0s - loss: 0.0117
96/188 [==============>...............] - ETA: 0s - loss: 0.0117
103/188 [===============>..............] - ETA: 0s - loss: 0.0117
110/188 [================>.............] - ETA: 0s - loss: 0.0117
117/188 [=================>............] - ETA: 0s - loss: 0.0117
124/188 [==================>...........] - ETA: 0s - loss: 0.0117
131/188 [===================>..........] - ETA: 0s - loss: 0.0117
138/188 [=====================>........] - ETA: 0s - loss: 0.0117
145/188 [======================>.......] - ETA: 0s - loss: 0.0117
152/188 [=======================>......] - ETA: 0s - loss: 0.0117
159/188 [========================>.....] - ETA: 0s - loss: 0.0117
165/188 [=========================>....] - ETA: 0s - loss: 0.0117
171/188 [==========================>...] - ETA: 0s - loss: 0.0117
178/188 [===========================>..] - ETA: 0s - loss: 0.0117
185/188 [============================>.] - ETA: 0s - loss: 0.0117
188/188 [==============================] - 2s 8ms/step - loss: 0.0117
188/188 [==============================] - 2s 10ms/step - loss: 0.0117 - val_loss: 0.0118
Epoch 18/30
1/188 [..............................] - ETA: 1s - loss: 0.0110
8/188 [>.............................] - ETA: 1s - loss: 0.0114
16/188 [=>............................] - ETA: 1s - loss: 0.0112
23/188 [==>...........................] - ETA: 1s - loss: 0.0113
30/188 [===>..........................] - ETA: 1s - loss: 0.0113
36/188 [====>.........................] - ETA: 1s - loss: 0.0114
42/188 [=====>........................] - ETA: 1s - loss: 0.0114
49/188 [======>.......................] - ETA: 1s - loss: 0.0114
55/188 [=======>......................] - ETA: 1s - loss: 0.0114
61/188 [========>.....................] - ETA: 1s - loss: 0.0114
68/188 [=========>....................] - ETA: 0s - loss: 0.0114
75/188 [==========>...................] - ETA: 0s - loss: 0.0114
82/188 [============>.................] - ETA: 0s - loss: 0.0114
89/188 [=============>................] - ETA: 0s - loss: 0.0114
96/188 [==============>...............] - ETA: 0s - loss: 0.0114
103/188 [===============>..............] - ETA: 0s - loss: 0.0114
110/188 [================>.............] - ETA: 0s - loss: 0.0114
117/188 [=================>............] - ETA: 0s - loss: 0.0114
124/188 [==================>...........] - ETA: 0s - loss: 0.0114
131/188 [===================>..........] - ETA: 0s - loss: 0.0114
139/188 [=====================>........] - ETA: 0s - loss: 0.0114
147/188 [======================>.......] - ETA: 0s - loss: 0.0114
155/188 [=======================>......] - ETA: 0s - loss: 0.0114
162/188 [========================>.....] - ETA: 0s - loss: 0.0114
169/188 [=========================>....] - ETA: 0s - loss: 0.0114
176/188 [===========================>..] - ETA: 0s - loss: 0.0114
182/188 [============================>.] - ETA: 0s - loss: 0.0114
188/188 [==============================] - 1s 8ms/step - loss: 0.0114
188/188 [==============================] - 2s 10ms/step - loss: 0.0114 - val_loss: 0.0115
Epoch 19/30
1/188 [..............................] - ETA: 1s - loss: 0.0121
8/188 [>.............................] - ETA: 1s - loss: 0.0111
13/188 [=>............................] - ETA: 1s - loss: 0.0111
18/188 [=>............................] - ETA: 1s - loss: 0.0111
24/188 [==>...........................] - ETA: 1s - loss: 0.0111
30/188 [===>..........................] - ETA: 1s - loss: 0.0111
36/188 [====>.........................] - ETA: 1s - loss: 0.0111
42/188 [=====>........................] - ETA: 1s - loss: 0.0111
48/188 [======>.......................] - ETA: 1s - loss: 0.0111
51/188 [=======>......................] - ETA: 1s - loss: 0.0112
56/188 [=======>......................] - ETA: 1s - loss: 0.0112
62/188 [========>.....................] - ETA: 1s - loss: 0.0112
68/188 [=========>....................] - ETA: 1s - loss: 0.0112
74/188 [==========>...................] - ETA: 1s - loss: 0.0112
80/188 [===========>..................] - ETA: 1s - loss: 0.0112
86/188 [============>.................] - ETA: 0s - loss: 0.0112
92/188 [=============>................] - ETA: 0s - loss: 0.0112
99/188 [==============>...............] - ETA: 0s - loss: 0.0112
105/188 [===============>..............] - ETA: 0s - loss: 0.0112
111/188 [================>.............] - ETA: 0s - loss: 0.0112
118/188 [=================>............] - ETA: 0s - loss: 0.0112
124/188 [==================>...........] - ETA: 0s - loss: 0.0112
130/188 [===================>..........] - ETA: 0s - loss: 0.0112
136/188 [====================>.........] - ETA: 0s - loss: 0.0112
142/188 [=====================>........] - ETA: 0s - loss: 0.0112
147/188 [======================>.......] - ETA: 0s - loss: 0.0112
154/188 [=======================>......] - ETA: 0s - loss: 0.0112
159/188 [========================>.....] - ETA: 0s - loss: 0.0112
164/188 [=========================>....] - ETA: 0s - loss: 0.0112
168/188 [=========================>....] - ETA: 0s - loss: 0.0112
173/188 [==========================>...] - ETA: 0s - loss: 0.0112
179/188 [===========================>..] - ETA: 0s - loss: 0.0112
186/188 [============================>.] - ETA: 0s - loss: 0.0112
188/188 [==============================] - 2s 10ms/step - loss: 0.0112
188/188 [==============================] - 2s 12ms/step - loss: 0.0112 - val_loss: 0.0113
Epoch 20/30
1/188 [..............................] - ETA: 0s - loss: 0.0104
7/188 [>.............................] - ETA: 1s - loss: 0.0109
13/188 [=>............................] - ETA: 1s - loss: 0.0108
19/188 [==>...........................] - ETA: 1s - loss: 0.0109
25/188 [==>...........................] - ETA: 1s - loss: 0.0110
31/188 [===>..........................] - ETA: 1s - loss: 0.0110
36/188 [====>.........................] - ETA: 1s - loss: 0.0110
41/188 [=====>........................] - ETA: 1s - loss: 0.0110
47/188 [======>.......................] - ETA: 1s - loss: 0.0110
53/188 [=======>......................] - ETA: 1s - loss: 0.0110
59/188 [========>.....................] - ETA: 1s - loss: 0.0110
65/188 [=========>....................] - ETA: 1s - loss: 0.0110
71/188 [==========>...................] - ETA: 1s - loss: 0.0110
77/188 [===========>..................] - ETA: 1s - loss: 0.0110
83/188 [============>.................] - ETA: 0s - loss: 0.0110
89/188 [=============>................] - ETA: 0s - loss: 0.0110
95/188 [==============>...............] - ETA: 0s - loss: 0.0110
101/188 [===============>..............] - ETA: 0s - loss: 0.0110
107/188 [================>.............] - ETA: 0s - loss: 0.0110
113/188 [=================>............] - ETA: 0s - loss: 0.0110
119/188 [=================>............] - ETA: 0s - loss: 0.0110
126/188 [===================>..........] - ETA: 0s - loss: 0.0110
132/188 [====================>.........] - ETA: 0s - loss: 0.0110
137/188 [====================>.........] - ETA: 0s - loss: 0.0110
142/188 [=====================>........] - ETA: 0s - loss: 0.0109
148/188 [======================>.......] - ETA: 0s - loss: 0.0109
154/188 [=======================>......] - ETA: 0s - loss: 0.0109
162/188 [========================>.....] - ETA: 0s - loss: 0.0109
168/188 [=========================>....] - ETA: 0s - loss: 0.0109
174/188 [==========================>...] - ETA: 0s - loss: 0.0109
179/188 [===========================>..] - ETA: 0s - loss: 0.0109
184/188 [============================>.] - ETA: 0s - loss: 0.0109
188/188 [==============================] - 2s 9ms/step - loss: 0.0109
188/188 [==============================] - 2s 11ms/step - loss: 0.0109 - val_loss: 0.0111
Epoch 21/30
1/188 [..............................] - ETA: 1s - loss: 0.0106
7/188 [>.............................] - ETA: 1s - loss: 0.0107
14/188 [=>............................] - ETA: 1s - loss: 0.0109
19/188 [==>...........................] - ETA: 1s - loss: 0.0109
24/188 [==>...........................] - ETA: 1s - loss: 0.0109
30/188 [===>..........................] - ETA: 1s - loss: 0.0109
36/188 [====>.........................] - ETA: 1s - loss: 0.0109
42/188 [=====>........................] - ETA: 1s - loss: 0.0108
48/188 [======>.......................] - ETA: 1s - loss: 0.0108
54/188 [=======>......................] - ETA: 1s - loss: 0.0108
61/188 [========>.....................] - ETA: 1s - loss: 0.0108
68/188 [=========>....................] - ETA: 1s - loss: 0.0108
74/188 [==========>...................] - ETA: 1s - loss: 0.0108
80/188 [===========>..................] - ETA: 0s - loss: 0.0108
86/188 [============>.................] - ETA: 0s - loss: 0.0108
91/188 [=============>................] - ETA: 0s - loss: 0.0108
93/188 [=============>................] - ETA: 0s - loss: 0.0108
97/188 [==============>...............] - ETA: 0s - loss: 0.0108
103/188 [===============>..............] - ETA: 0s - loss: 0.0108
109/188 [================>.............] - ETA: 0s - loss: 0.0108
116/188 [=================>............] - ETA: 0s - loss: 0.0108
121/188 [==================>...........] - ETA: 0s - loss: 0.0108
126/188 [===================>..........] - ETA: 0s - loss: 0.0108
132/188 [====================>.........] - ETA: 0s - loss: 0.0108
139/188 [=====================>........] - ETA: 0s - loss: 0.0108
146/188 [======================>.......] - ETA: 0s - loss: 0.0108
153/188 [=======================>......] - ETA: 0s - loss: 0.0108
160/188 [========================>.....] - ETA: 0s - loss: 0.0108
167/188 [=========================>....] - ETA: 0s - loss: 0.0108
174/188 [==========================>...] - ETA: 0s - loss: 0.0107
181/188 [===========================>..] - ETA: 0s - loss: 0.0107
188/188 [==============================] - 2s 9ms/step - loss: 0.0107
188/188 [==============================] - 2s 11ms/step - loss: 0.0107 - val_loss: 0.0108
Epoch 22/30
1/188 [..............................] - ETA: 0s - loss: 0.0101
6/188 [..............................] - ETA: 1s - loss: 0.0104
10/188 [>.............................] - ETA: 2s - loss: 0.0105
15/188 [=>............................] - ETA: 2s - loss: 0.0105
21/188 [==>...........................] - ETA: 1s - loss: 0.0106
27/188 [===>..........................] - ETA: 1s - loss: 0.0106
33/188 [====>.........................] - ETA: 1s - loss: 0.0106
38/188 [=====>........................] - ETA: 1s - loss: 0.0106
45/188 [======>.......................] - ETA: 1s - loss: 0.0106
51/188 [=======>......................] - ETA: 1s - loss: 0.0106
57/188 [========>.....................] - ETA: 1s - loss: 0.0106
59/188 [========>.....................] - ETA: 1s - loss: 0.0106
64/188 [=========>....................] - ETA: 1s - loss: 0.0106
69/188 [==========>...................] - ETA: 1s - loss: 0.0106
75/188 [==========>...................] - ETA: 1s - loss: 0.0106
81/188 [===========>..................] - ETA: 1s - loss: 0.0106
88/188 [=============>................] - ETA: 0s - loss: 0.0106
95/188 [==============>...............] - ETA: 0s - loss: 0.0106
101/188 [===============>..............] - ETA: 0s - loss: 0.0106
108/188 [================>.............] - ETA: 0s - loss: 0.0106
113/188 [=================>............] - ETA: 0s - loss: 0.0106
118/188 [=================>............] - ETA: 0s - loss: 0.0106
124/188 [==================>...........] - ETA: 0s - loss: 0.0106
131/188 [===================>..........] - ETA: 0s - loss: 0.0106
138/188 [=====================>........] - ETA: 0s - loss: 0.0106
145/188 [======================>.......] - ETA: 0s - loss: 0.0106
152/188 [=======================>......] - ETA: 0s - loss: 0.0106
158/188 [========================>.....] - ETA: 0s - loss: 0.0106
165/188 [=========================>....] - ETA: 0s - loss: 0.0106
171/188 [==========================>...] - ETA: 0s - loss: 0.0106
177/188 [===========================>..] - ETA: 0s - loss: 0.0106
184/188 [============================>.] - ETA: 0s - loss: 0.0106
188/188 [==============================] - 2s 9ms/step - loss: 0.0106
188/188 [==============================] - 2s 11ms/step - loss: 0.0106 - val_loss: 0.0107
Epoch 23/30
1/188 [..............................] - ETA: 1s - loss: 0.0110
7/188 [>.............................] - ETA: 1s - loss: 0.0105
13/188 [=>............................] - ETA: 1s - loss: 0.0104
20/188 [==>...........................] - ETA: 1s - loss: 0.0104
27/188 [===>..........................] - ETA: 1s - loss: 0.0104
30/188 [===>..........................] - ETA: 1s - loss: 0.0104
35/188 [====>.........................] - ETA: 1s - loss: 0.0104
41/188 [=====>........................] - ETA: 1s - loss: 0.0104
49/188 [======>.......................] - ETA: 1s - loss: 0.0104
56/188 [=======>......................] - ETA: 1s - loss: 0.0104
63/188 [=========>....................] - ETA: 1s - loss: 0.0104
70/188 [==========>...................] - ETA: 1s - loss: 0.0104
77/188 [===========>..................] - ETA: 0s - loss: 0.0104
83/188 [============>.................] - ETA: 0s - loss: 0.0104
90/188 [=============>................] - ETA: 0s - loss: 0.0104
97/188 [==============>...............] - ETA: 0s - loss: 0.0104
104/188 [===============>..............] - ETA: 0s - loss: 0.0104
109/188 [================>.............] - ETA: 0s - loss: 0.0104
115/188 [=================>............] - ETA: 0s - loss: 0.0104
121/188 [==================>...........] - ETA: 0s - loss: 0.0104
128/188 [===================>..........] - ETA: 0s - loss: 0.0104
135/188 [====================>.........] - ETA: 0s - loss: 0.0104
142/188 [=====================>........] - ETA: 0s - loss: 0.0104
149/188 [======================>.......] - ETA: 0s - loss: 0.0104
156/188 [=======================>......] - ETA: 0s - loss: 0.0104
163/188 [=========================>....] - ETA: 0s - loss: 0.0104
170/188 [==========================>...] - ETA: 0s - loss: 0.0104
177/188 [===========================>..] - ETA: 0s - loss: 0.0104
184/188 [============================>.] - ETA: 0s - loss: 0.0104
188/188 [==============================] - 2s 8ms/step - loss: 0.0104
188/188 [==============================] - 2s 10ms/step - loss: 0.0104 - val_loss: 0.0106
Epoch 24/30
1/188 [..............................] - ETA: 0s - loss: 0.0108
7/188 [>.............................] - ETA: 1s - loss: 0.0103
9/188 [>.............................] - ETA: 2s - loss: 0.0102
14/188 [=>............................] - ETA: 2s - loss: 0.0102
19/188 [==>...........................] - ETA: 2s - loss: 0.0102
25/188 [==>...........................] - ETA: 1s - loss: 0.0102
32/188 [====>.........................] - ETA: 1s - loss: 0.0102
39/188 [=====>........................] - ETA: 1s - loss: 0.0102
45/188 [======>.......................] - ETA: 1s - loss: 0.0102
52/188 [=======>......................] - ETA: 1s - loss: 0.0102
59/188 [========>.....................] - ETA: 1s - loss: 0.0102
66/188 [=========>....................] - ETA: 1s - loss: 0.0102
72/188 [==========>...................] - ETA: 1s - loss: 0.0102
79/188 [===========>..................] - ETA: 0s - loss: 0.0102
86/188 [============>.................] - ETA: 0s - loss: 0.0102
93/188 [=============>................] - ETA: 0s - loss: 0.0102
101/188 [===============>..............] - ETA: 0s - loss: 0.0103
108/188 [================>.............] - ETA: 0s - loss: 0.0103
115/188 [=================>............] - ETA: 0s - loss: 0.0103
122/188 [==================>...........] - ETA: 0s - loss: 0.0103
128/188 [===================>..........] - ETA: 0s - loss: 0.0102
134/188 [====================>.........] - ETA: 0s - loss: 0.0102
141/188 [=====================>........] - ETA: 0s - loss: 0.0103
148/188 [======================>.......] - ETA: 0s - loss: 0.0102
155/188 [=======================>......] - ETA: 0s - loss: 0.0103
162/188 [========================>.....] - ETA: 0s - loss: 0.0103
169/188 [=========================>....] - ETA: 0s - loss: 0.0103
176/188 [===========================>..] - ETA: 0s - loss: 0.0102
183/188 [============================>.] - ETA: 0s - loss: 0.0102
188/188 [==============================] - 2s 8ms/step - loss: 0.0102
188/188 [==============================] - 2s 10ms/step - loss: 0.0102 - val_loss: 0.0104
Epoch 25/30
1/188 [..............................] - ETA: 0s - loss: 0.0100
7/188 [>.............................] - ETA: 1s - loss: 0.0101
14/188 [=>............................] - ETA: 1s - loss: 0.0101
19/188 [==>...........................] - ETA: 1s - loss: 0.0101
25/188 [==>...........................] - ETA: 1s - loss: 0.0101
31/188 [===>..........................] - ETA: 1s - loss: 0.0101
38/188 [=====>........................] - ETA: 1s - loss: 0.0101
45/188 [======>.......................] - ETA: 1s - loss: 0.0101
51/188 [=======>......................] - ETA: 1s - loss: 0.0101
58/188 [========>.....................] - ETA: 1s - loss: 0.0101
65/188 [=========>....................] - ETA: 1s - loss: 0.0101
72/188 [==========>...................] - ETA: 0s - loss: 0.0101
79/188 [===========>..................] - ETA: 0s - loss: 0.0101
86/188 [============>.................] - ETA: 0s - loss: 0.0101
92/188 [=============>................] - ETA: 0s - loss: 0.0101
99/188 [==============>...............] - ETA: 0s - loss: 0.0101
106/188 [===============>..............] - ETA: 0s - loss: 0.0101
113/188 [=================>............] - ETA: 0s - loss: 0.0101
120/188 [==================>...........] - ETA: 0s - loss: 0.0101
127/188 [===================>..........] - ETA: 0s - loss: 0.0101
134/188 [====================>.........] - ETA: 0s - loss: 0.0101
141/188 [=====================>........] - ETA: 0s - loss: 0.0101
148/188 [======================>.......] - ETA: 0s - loss: 0.0101
155/188 [=======================>......] - ETA: 0s - loss: 0.0101
162/188 [========================>.....] - ETA: 0s - loss: 0.0101
169/188 [=========================>....] - ETA: 0s - loss: 0.0101
176/188 [===========================>..] - ETA: 0s - loss: 0.0101
183/188 [============================>.] - ETA: 0s - loss: 0.0101
188/188 [==============================] - 1s 8ms/step - loss: 0.0101
188/188 [==============================] - 2s 10ms/step - loss: 0.0101 - val_loss: 0.0103
Epoch 26/30
1/188 [..............................] - ETA: 0s - loss: 0.0098
7/188 [>.............................] - ETA: 1s - loss: 0.0101
14/188 [=>............................] - ETA: 1s - loss: 0.0101
20/188 [==>...........................] - ETA: 1s - loss: 0.0101
27/188 [===>..........................] - ETA: 1s - loss: 0.0100
33/188 [====>.........................] - ETA: 1s - loss: 0.0101
39/188 [=====>........................] - ETA: 1s - loss: 0.0100
45/188 [======>.......................] - ETA: 1s - loss: 0.0100
52/188 [=======>......................] - ETA: 1s - loss: 0.0100
59/188 [========>.....................] - ETA: 1s - loss: 0.0100
66/188 [=========>....................] - ETA: 1s - loss: 0.0100
73/188 [==========>...................] - ETA: 0s - loss: 0.0100
80/188 [===========>..................] - ETA: 0s - loss: 0.0100
87/188 [============>.................] - ETA: 0s - loss: 0.0100
94/188 [==============>...............] - ETA: 0s - loss: 0.0100
101/188 [===============>..............] - ETA: 0s - loss: 0.0100
108/188 [================>.............] - ETA: 0s - loss: 0.0100
115/188 [=================>............] - ETA: 0s - loss: 0.0100
122/188 [==================>...........] - ETA: 0s - loss: 0.0100
129/188 [===================>..........] - ETA: 0s - loss: 0.0100
135/188 [====================>.........] - ETA: 0s - loss: 0.0100
142/188 [=====================>........] - ETA: 0s - loss: 0.0100
149/188 [======================>.......] - ETA: 0s - loss: 0.0100
156/188 [=======================>......] - ETA: 0s - loss: 0.0100
163/188 [=========================>....] - ETA: 0s - loss: 0.0100
169/188 [=========================>....] - ETA: 0s - loss: 0.0100
176/188 [===========================>..] - ETA: 0s - loss: 0.0100
183/188 [============================>.] - ETA: 0s - loss: 0.0100
188/188 [==============================] - 1s 8ms/step - loss: 0.0100
188/188 [==============================] - 2s 10ms/step - loss: 0.0100 - val_loss: 0.0101
Epoch 27/30
1/188 [..............................] - ETA: 0s - loss: 0.0097
5/188 [..............................] - ETA: 2s - loss: 0.0100
10/188 [>.............................] - ETA: 2s - loss: 0.0101
15/188 [=>............................] - ETA: 1s - loss: 0.0101
21/188 [==>...........................] - ETA: 1s - loss: 0.0100
27/188 [===>..........................] - ETA: 1s - loss: 0.0100
33/188 [====>.........................] - ETA: 1s - loss: 0.0100
38/188 [=====>........................] - ETA: 1s - loss: 0.0100
43/188 [=====>........................] - ETA: 1s - loss: 0.0100
48/188 [======>.......................] - ETA: 1s - loss: 0.0100
54/188 [=======>......................] - ETA: 1s - loss: 0.0100
60/188 [========>.....................] - ETA: 1s - loss: 0.0099
67/188 [=========>....................] - ETA: 1s - loss: 0.0099
73/188 [==========>...................] - ETA: 1s - loss: 0.0099
79/188 [===========>..................] - ETA: 1s - loss: 0.0099
85/188 [============>.................] - ETA: 0s - loss: 0.0099
91/188 [=============>................] - ETA: 0s - loss: 0.0099
97/188 [==============>...............] - ETA: 0s - loss: 0.0099
103/188 [===============>..............] - ETA: 0s - loss: 0.0099
109/188 [================>.............] - ETA: 0s - loss: 0.0099
115/188 [=================>............] - ETA: 0s - loss: 0.0099
122/188 [==================>...........] - ETA: 0s - loss: 0.0099
128/188 [===================>..........] - ETA: 0s - loss: 0.0099
135/188 [====================>.........] - ETA: 0s - loss: 0.0099
141/188 [=====================>........] - ETA: 0s - loss: 0.0099
147/188 [======================>.......] - ETA: 0s - loss: 0.0099
152/188 [=======================>......] - ETA: 0s - loss: 0.0099
158/188 [========================>.....] - ETA: 0s - loss: 0.0099
163/188 [=========================>....] - ETA: 0s - loss: 0.0099
169/188 [=========================>....] - ETA: 0s - loss: 0.0099
172/188 [==========================>...] - ETA: 0s - loss: 0.0099
177/188 [===========================>..] - ETA: 0s - loss: 0.0098
182/188 [============================>.] - ETA: 0s - loss: 0.0098
188/188 [==============================] - 2s 10ms/step - loss: 0.0098
188/188 [==============================] - 2s 11ms/step - loss: 0.0098 - val_loss: 0.0099
Epoch 28/30
1/188 [..............................] - ETA: 1s - loss: 0.0091
7/188 [>.............................] - ETA: 1s - loss: 0.0094
12/188 [>.............................] - ETA: 1s - loss: 0.0096
18/188 [=>............................] - ETA: 1s - loss: 0.0097
23/188 [==>...........................] - ETA: 1s - loss: 0.0097
28/188 [===>..........................] - ETA: 1s - loss: 0.0097
33/188 [====>.........................] - ETA: 1s - loss: 0.0097
38/188 [=====>........................] - ETA: 1s - loss: 0.0097
44/188 [======>.......................] - ETA: 1s - loss: 0.0097
50/188 [======>.......................] - ETA: 1s - loss: 0.0097
57/188 [========>.....................] - ETA: 1s - loss: 0.0097
63/188 [=========>....................] - ETA: 1s - loss: 0.0097
69/188 [==========>...................] - ETA: 1s - loss: 0.0097
75/188 [==========>...................] - ETA: 1s - loss: 0.0097
81/188 [===========>..................] - ETA: 1s - loss: 0.0097
87/188 [============>.................] - ETA: 0s - loss: 0.0097
93/188 [=============>................] - ETA: 0s - loss: 0.0097
98/188 [==============>...............] - ETA: 0s - loss: 0.0097
104/188 [===============>..............] - ETA: 0s - loss: 0.0097
111/188 [================>.............] - ETA: 0s - loss: 0.0097
117/188 [=================>............] - ETA: 0s - loss: 0.0097
124/188 [==================>...........] - ETA: 0s - loss: 0.0097
130/188 [===================>..........] - ETA: 0s - loss: 0.0097
132/188 [====================>.........] - ETA: 0s - loss: 0.0097
136/188 [====================>.........] - ETA: 0s - loss: 0.0097
140/188 [=====================>........] - ETA: 0s - loss: 0.0097
145/188 [======================>.......] - ETA: 0s - loss: 0.0097
152/188 [=======================>......] - ETA: 0s - loss: 0.0097
158/188 [========================>.....] - ETA: 0s - loss: 0.0097
164/188 [=========================>....] - ETA: 0s - loss: 0.0097
170/188 [==========================>...] - ETA: 0s - loss: 0.0097
176/188 [===========================>..] - ETA: 0s - loss: 0.0097
183/188 [============================>.] - ETA: 0s - loss: 0.0097
188/188 [==============================] - 2s 9ms/step - loss: 0.0097
188/188 [==============================] - 2s 12ms/step - loss: 0.0097 - val_loss: 0.0104
Epoch 29/30
1/188 [..............................] - ETA: 1s - loss: 0.0099
6/188 [..............................] - ETA: 2s - loss: 0.0098
10/188 [>.............................] - ETA: 2s - loss: 0.0099
12/188 [>.............................] - ETA: 2s - loss: 0.0098
17/188 [=>............................] - ETA: 2s - loss: 0.0098
22/188 [==>...........................] - ETA: 2s - loss: 0.0097
26/188 [===>..........................] - ETA: 2s - loss: 0.0097
32/188 [====>.........................] - ETA: 2s - loss: 0.0097
38/188 [=====>........................] - ETA: 1s - loss: 0.0097
43/188 [=====>........................] - ETA: 1s - loss: 0.0096
49/188 [======>.......................] - ETA: 1s - loss: 0.0097
55/188 [=======>......................] - ETA: 1s - loss: 0.0096
61/188 [========>.....................] - ETA: 1s - loss: 0.0096
68/188 [=========>....................] - ETA: 1s - loss: 0.0096
74/188 [==========>...................] - ETA: 1s - loss: 0.0096
80/188 [===========>..................] - ETA: 1s - loss: 0.0096
86/188 [============>.................] - ETA: 1s - loss: 0.0096
92/188 [=============>................] - ETA: 1s - loss: 0.0096
98/188 [==============>...............] - ETA: 0s - loss: 0.0096
103/188 [===============>..............] - ETA: 0s - loss: 0.0096
108/188 [================>.............] - ETA: 0s - loss: 0.0096
111/188 [================>.............] - ETA: 0s - loss: 0.0096
117/188 [=================>............] - ETA: 0s - loss: 0.0096
122/188 [==================>...........] - ETA: 0s - loss: 0.0096
130/188 [===================>..........] - ETA: 0s - loss: 0.0096
137/188 [====================>.........] - ETA: 0s - loss: 0.0096
145/188 [======================>.......] - ETA: 0s - loss: 0.0096
152/188 [=======================>......] - ETA: 0s - loss: 0.0096
158/188 [========================>.....] - ETA: 0s - loss: 0.0096
165/188 [=========================>....] - ETA: 0s - loss: 0.0096
172/188 [==========================>...] - ETA: 0s - loss: 0.0096
179/188 [===========================>..] - ETA: 0s - loss: 0.0096
186/188 [============================>.] - ETA: 0s - loss: 0.0096
188/188 [==============================] - 2s 10ms/step - loss: 0.0096
188/188 [==============================] - 2s 12ms/step - loss: 0.0096 - val_loss: 0.0097
Epoch 30/30
1/188 [..............................] - ETA: 1s - loss: 0.0096
6/188 [..............................] - ETA: 1s - loss: 0.0095
11/188 [>.............................] - ETA: 1s - loss: 0.0095
17/188 [=>............................] - ETA: 1s - loss: 0.0095
23/188 [==>...........................] - ETA: 1s - loss: 0.0094
29/188 [===>..........................] - ETA: 1s - loss: 0.0094
35/188 [====>.........................] - ETA: 1s - loss: 0.0094
41/188 [=====>........................] - ETA: 1s - loss: 0.0094
47/188 [======>.......................] - ETA: 1s - loss: 0.0094
52/188 [=======>......................] - ETA: 1s - loss: 0.0094
58/188 [========>.....................] - ETA: 1s - loss: 0.0094
64/188 [=========>....................] - ETA: 1s - loss: 0.0094
70/188 [==========>...................] - ETA: 1s - loss: 0.0094
76/188 [===========>..................] - ETA: 1s - loss: 0.0094
82/188 [============>.................] - ETA: 0s - loss: 0.0094
88/188 [=============>................] - ETA: 0s - loss: 0.0094
89/188 [=============>................] - ETA: 0s - loss: 0.0094
93/188 [=============>................] - ETA: 0s - loss: 0.0094
99/188 [==============>...............] - ETA: 0s - loss: 0.0094
105/188 [===============>..............] - ETA: 0s - loss: 0.0094
111/188 [================>.............] - ETA: 0s - loss: 0.0094
116/188 [=================>............] - ETA: 0s - loss: 0.0094
123/188 [==================>...........] - ETA: 0s - loss: 0.0094
130/188 [===================>..........] - ETA: 0s - loss: 0.0094
137/188 [====================>.........] - ETA: 0s - loss: 0.0094
144/188 [=====================>........] - ETA: 0s - loss: 0.0094
151/188 [=======================>......] - ETA: 0s - loss: 0.0094
158/188 [========================>.....] - ETA: 0s - loss: 0.0094
165/188 [=========================>....] - ETA: 0s - loss: 0.0094
173/188 [==========================>...] - ETA: 0s - loss: 0.0094
180/188 [===========================>..] - ETA: 0s - loss: 0.0094
187/188 [============================>.] - ETA: 0s - loss: 0.0094
188/188 [==============================] - 2s 10ms/step - loss: 0.0094
188/188 [==============================] - 2s 11ms/step - loss: 0.0094 - val_loss: 0.0096
# Étape 4 : Calculer les erreurs de reconstruction
reconstruction_error <- function(model, data) {
reconstructed <- model %>% predict(data)
errors <- rowSums((data - reconstructed)^2)
return(errors)
}
normal_errors <- reconstruction_error(model, x_test_normal)
1/313 [..............................] - ETA: 50s
18/313 [>.............................] - ETA: 0s
42/313 [===>..........................] - ETA: 0s
64/313 [=====>........................] - ETA: 0s
84/313 [=======>......................] - ETA: 0s
108/313 [=========>....................] - ETA: 0s
129/313 [===========>..................] - ETA: 0s
149/313 [=============>................] - ETA: 0s
169/313 [===============>..............] - ETA: 0s
189/313 [=================>............] - ETA: 0s
210/313 [===================>..........] - ETA: 0s
228/313 [====================>.........] - ETA: 0s
243/313 [======================>.......] - ETA: 0s
257/313 [=======================>......] - ETA: 0s
270/313 [========================>.....] - ETA: 0s
291/313 [==========================>...] - ETA: 0s
312/313 [============================>.] - ETA: 0s
313/313 [==============================] - 1s 3ms/step
313/313 [==============================] - 1s 3ms/step
anomaly_errors <- reconstruction_error(model, x_test_anomaly)
1/313 [..............................] - ETA: 8s
26/313 [=>............................] - ETA: 0s
52/313 [===>..........................] - ETA: 0s
80/313 [======>.......................] - ETA: 0s
107/313 [=========>....................] - ETA: 0s
126/313 [===========>..................] - ETA: 0s
146/313 [============>.................] - ETA: 0s
175/313 [===============>..............] - ETA: 0s
198/313 [=================>............] - ETA: 0s
221/313 [====================>.........] - ETA: 0s
248/313 [======================>.......] - ETA: 0s
272/313 [=========================>....] - ETA: 0s
298/313 [===========================>..] - ETA: 0s
313/313 [==============================] - 1s 2ms/step
313/313 [==============================] - 1s 2ms/step
# Définir un seuil basé sur les données normales
threshold <- quantile(normal_errors, 0.95)
# Détecter les anomalies
is_anomaly <- function(errors, threshold) {
return(errors > threshold)
}
normal_anomalies <- is_anomaly(normal_errors, threshold)
anomaly_detected <- is_anomaly(anomaly_errors, threshold)
# Étape 5 : Évaluer les performances
cat("Seuil d'anomalie :", threshold, "\n")
Seuil d'anomalie : 15.37555
cat("Taux de détection des anomalies parmi les données normales :", mean(normal_anomalies), "\n")
Taux de détection des anomalies parmi les données normales : 0.05
cat("Taux de détection des anomalies parmi les anomalies :", mean(anomaly_detected), "\n")
Taux de détection des anomalies parmi les anomalies : 0.0027
# Tracer une courbe ROC
errors <- c(normal_errors, anomaly_errors)
labels <- c(rep(0, length(normal_errors)), rep(1, length(anomaly_errors)))
roc_obj <- roc(labels, errors)
Setting levels: control = 0, case = 1
Setting direction: controls > cases
plot(roc_obj, main = "Courbe ROC", col = "blue", lwd = 2)
abline(a = 0, b = 1, col = "gray", lty = 2)
cat("AUC :", auc(roc_obj), "\n")
AUC : 0.5917695
# Étape 5 : Évaluer les performances
cat("Seuil d'anomalie :", threshold, "\n")
Seuil d'anomalie : 15.37555
cat("Taux de détection des anomalies parmi les données normales :", mean(normal_anomalies), "\n")
Taux de détection des anomalies parmi les données normales : 0.05
cat("Taux de détection des anomalies parmi les anomalies :", mean(anomaly_detected), "\n")
Taux de détection des anomalies parmi les anomalies : 0.0027
library(plotly)
# Vérifier que les métriques de perte sont disponibles
if (!is.null(history$metrics$loss) && !is.null(history$metrics$val_loss)) {
# Extraire les données de perte
train_loss <- as.numeric(history$metrics$loss)
val_loss <- as.numeric(history$metrics$val_loss)
epochs <- seq_along(train_loss)
# Créer un graphique interactif avec `plotly`
fig <- plot_ly() %>%
add_trace(x = ~epochs, y = ~train_loss, type = 'scatter', mode = 'lines+markers',
name = 'Entraînement', line = list(color = 'blue'), marker = list(color = 'blue')) %>%
add_trace(x = ~epochs, y = ~val_loss, type = 'scatter', mode = 'lines+markers',
name = 'Validation', line = list(color = 'red'), marker = list(color = 'red')) %>%
layout(
title = "Courbe de perte pendant l'entraînement",
xaxis = list(title = "Époques"),
yaxis = list(title = "Perte (Loss)"),
legend = list(x = 0.1, y = 0.9)
)
# Afficher dans l'onglet Viewer
fig
} else {
cat("Erreur : Les métriques de perte 'loss' ou 'val_loss' sont introuvables dans 'history'.\n")
}
NA